package com.jluzh.client;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

/**
 * @author EvanHuang
 * @date 11/5/2018 8:04 PM
 * @since
 */
public class App {

    public static void main(String[] args) {
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target("http://localhost:8081").path("resources").path("inject/formui")
                .queryParam("name", "haha");
        // 下面两种都是设置Accept请求头
        Invocation.Builder builder = target.request(MediaType.TEXT_PLAIN_TYPE);
        builder.header("Accept",MediaType.APPLICATION_JSON);
        Response response = builder.get();
        System.out.println(response.readEntity(String.class));

    }

    /*
        //创建一个子资源URI
        public WebTarget path(String path);
        //为当前URI设置矩阵参数（参考参数绑定一文）
        public WebTarget matrixParam(String name, Object... values);
        //为当前URI设置查询参数（参考参数绑定一文）
        public WebTarget queryParam(String name, Object... values);
        //发起一个请求，获取请求执行器
        public Invocation.Builder request();
      */
    /*
    Invocation.Builder常用方法
    //创建一个指定请求方法的请求
    public Invocation build(String method);
    //创建一个指定请求方法的请求，并添加请求实体内容
    public Invocation build(String method, Entity<?> entity);
    //创建一个GET请求
    public Invocation buildGet();
     //创建一个DELETE请求
    public Invocation buildDelete();
    //创建一个POST请求，并添加POST请求实体内容；
    public Invocation buildPost(Entity<?> entity);
    //创建一个PUT请求，并添加请求实体内容；
    public Invocation buildPut(Entity<?> entity);
     //设置接受请求MIME格式；
    public Builder accept(MediaType... mediaTypes);
    //设置接受的编码格式；
    public Builder acceptEncoding(String... encodings);
     //添加Cookie内容；
    public Builder cookie(String name, String value);
    //添加请求头信息；
    public Builder header(String name, Object value);
     */

    /*
        Client client = ClientBuilder.newClient(new ClientConfig()
        .register(MyClientResponseFilter.class)
        .register(new AnotherClientFilter()));

        String entity = client.target("http://wolfcode.cn/api")
        .register(FilterForExampleCom.class)
        .path("helloworld")
        .queryParam("greeting", "Hi World!")
        .request(MediaType.TEXT_PLAIN_TYPE)
        .header("some-header", "true")
        .get(String.class);

     */

}
